package cn.kgc.day03.servlet;

import cn.kgc.day03.entity.Student;
import cn.kgc.day03.service.StudentService;
import cn.kgc.day03.service.impl.StudentServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;

/**
 * @author 课工场
 * @date 2024/10/10
 * @description
 */

public class StudentListServlet extends HttpServlet {

    private StudentService studentService = new StudentServiceImpl();

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        List<Student> students = studentService.getStudents();

        /*
           展示数据  students  -> student.jsp
           跳转页面
           转发     同一个请求对象    req    地址栏不会发生改变   服务器行为
           重定向   两次请求        session  地址栏发生改变       浏览器行为

           注意:  大范围作用域对象在使用时可以更加方便的实现数据共享 ,但是在选择域对象时
           要根据实际的业务场景,选择合适的作用域
        */
        // req.setAttribute("students",students);

        // 获取会话对象
        HttpSession session = req.getSession();
        session.setAttribute("students",students);

        // 请求转发
        req.getRequestDispatcher("/student.jsp").forward(req,resp);

        // 重定向
        // resp.sendRedirect("/javaweb/student.jsp");

    }
}
